package com.wex.cookbook.service;

import com.wex.cookbook.config.base.Result;
import com.wex.cookbook.dto.from.userInfo.LoginDto;
import com.wex.cookbook.dto.from.userInfo.RegisterDto;
import com.wex.cookbook.dto.from.userInfo.UpdateUserInfoDto;
import com.wex.cookbook.dto.to.userInfo.UserInfoDto;
import com.wex.cookbook.entity.Userinfo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author wex
 * @since 2023-10-16
 */
public interface UserinfoService extends IService<Userinfo> {

    /**
     * 用户注册
     * @param registerDto
     * @return
     */
    Result<String > register(RegisterDto registerDto);

    /**
     * 用户登录
     * @param loginDto
     * @return
     */
    String login(LoginDto loginDto);

    /**
     * 修改密码
     * @param updateUserInfoDto
     * @return
     */
    Result<String> updateUserInfoPassword(UpdateUserInfoDto updateUserInfoDto);

    /**
     * 修改手机号
     * @param updateUserInfoDto
     * @return
     */
    Result<String> updateUserInfoPhone(UpdateUserInfoDto updateUserInfoDto);

    /**
     * 修改邮箱
     * @param updateUserInfoDto
     * @return
     */
    Result<String> updateUserInfoEmail(UpdateUserInfoDto updateUserInfoDto);

    /**
     * 获取用户信息
     * @param username
     * @return
     */
    Result<UserInfoDto> getUserInfo(String username);

    /**
     * 删除用户信息
     * @param username
     * @return
     */
    Result<String> deleteUserInfo(String username);

    Result<String> updateUserInfo(UpdateUserInfoDto updateUserInfoDto);
}
